package jrain.fw.script.expression;

import java.util.Map;

import jrain.fw.script.resolver.VariableResolver;
import jrain.fw.script.tools.ELException;
import jrain.fw.script.tools.Logger;

 
public abstract class Expression {
	// -------------------------------------
	// Member variables
	// -------------------------------------

	// -------------------------------------

	/**
	 * Returns the expression in the expression language syntax
	 */
	public abstract String getExpressionString();

	// -------------------------------------

	/**
	 * Evaluates the expression in the given context
	 */
	public abstract Object evaluate(Object pContext, VariableResolver pResolver, Map<Object, Object> functions, String defaultPrefix, Logger pLogger)
			throws ELException;

	// -------------------------------------

}
